package com.wiselink.naver.productcatalog.response;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

/**
 * 产品标准选项
 */
@Getter
@Setter
@ToString
public class StandardOption {
    /**
     * 是否使用标准型选项
     * 표준형 옵션 사용 여부
     */
    private Boolean useStandardOption;
    /**
     * 标准选项组列表
     * 표준형 옵션 그룹 목록
     */
    private List<StandardOptionCategoryGroup> standardOptionCategoryGroups;

    @Getter
    @Setter
    @ToString
    public static class StandardOptionCategoryGroup {
        /**
         * 属性 ID
         * 속성 ID
         */
        private Long attributeId;
        /**
         * （选项名）
         * (옵션명)
         * 옵션 속성명(예: 색상, 사이즈(공통), 사이즈(미국))
         */
        private String attributeName;
        /**
         * （选项组名）
         * (옵션 그룹명)
         * (예: 사이즈, 색상)
         */
        private String groupName;
        /**
         * 图像是否可以注册
         * 이미지 등록 가능 여부
         */
        private Boolean imageRegistrationUsable;
        /**
         * value 可否修改
         * value 수정 가능 여부
         */
        private Boolean realValueUsable;
        /**
         * 标准型选项套装是否必需
         * 표준형 옵션 세트 필수 여부
         */
        private Boolean optionSetRequired;
        /**
         * 分类标准选项详细属性列表
         * 카테고리별 표준형 옵션 상세 속성 목록
         */
        private List<StandardOptionAttribute> standardOptionAttributes;
    }

    @Getter
    @Setter
    @ToString
    public static class StandardOptionAttribute {
        /**
         * (属性ID)
         * (속성 ID)
         */
        private Long attributeId;
        /**
         * (属性值 ID)
         * (속성값 ID)
         */
        private Long attributeValueId;
        /**
         * (属性值名称)
         * (속성값 이름)
         */
        private String attributeValueName;
        /**
         * (属性颜色代码)
         * (속성 색상 코드)
         */
        private String attributeColorCode;
        /**
         * 在标准选项中使用的图像 URL 列表
         * 표준형 옵션에서 사용할 이미지 URL 목록
         */
        private List<String> imageUrls;
    }
}
